↳ ITRS
↳ ITRStoIDPProof
z
del(x, nil) → nil
sort(cons(x, xs)) → cons(max(cons(x, xs)), sort(del(max(cons(x, xs)), cons(x, xs))))
if2(FALSE, x, y, xs) → cons(y, del(x, xs))
max(cons(x, cons(y, xs))) → if1(>=@z(x, y), x, y, xs)
del(x, cons(y, xs)) → if2(=@z(x, y), x, y, xs)
max(cons(x, nil)) → x
if1(TRUE, x, y, xs) → max(cons(x, xs))
if2(TRUE, x, y, xs) → xs
if1(FALSE, x, y, xs) → max(cons(y, xs))
max(nil) → 0@z
sort(nil) → nil
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
z
del(x, nil) → nil
sort(cons(x, xs)) → cons(max(cons(x, xs)), sort(del(max(cons(x, xs)), cons(x, xs))))
if2(FALSE, x, y, xs) → cons(y, del(x, xs))
max(cons(x, cons(y, xs))) → if1(>=@z(x, y), x, y, xs)
del(x, cons(y, xs)) → if2(=@z(x, y), x, y, xs)
max(cons(x, nil)) → x
if1(TRUE, x, y, xs) → max(cons(x, xs))
if2(TRUE, x, y, xs) → xs
if1(FALSE, x, y, xs) → max(cons(y, xs))
max(nil) → 0@z
sort(nil) → nil
(0) -> (3), if ((xs[0] →* cons(y[3], xs[3]))∧(x[0] →* x[3]))
(1) -> (1), if ((del(max(cons(x[1], xs[1])), cons(x[1], xs[1])) →* cons(x[1]a, xs[1]a)))
(1) -> (4), if ((del(max(cons(x[1], xs[1])), cons(x[1], xs[1])) →* cons(x[4], xs[4])))
(1) -> (5), if ((del(max(cons(x[1], xs[1])), cons(x[1], xs[1])) →* cons(x[5], xs[5])))
(2) -> (7), if ((xs[2] →* cons(y[7], xs[7]))∧(x[2] →* x[7]))
(3) -> (0), if ((xs[3] →* xs[0])∧(x[3] →* x[0])∧(y[3] →* y[0])∧(=@z(x[3], y[3]) →* FALSE))
(4) -> (7), if ((xs[4] →* cons(y[7], xs[7]))∧(x[4] →* x[7]))
(5) -> (3), if ((xs[5] →* xs[3])∧(x[5] →* y[3])∧(max(cons(x[5], xs[5])) →* x[3]))
(6) -> (7), if ((xs[6] →* cons(y[7], xs[7]))∧(y[6] →* x[7]))
(7) -> (2), if ((xs[7] →* xs[2])∧(x[7] →* x[2])∧(y[7] →* y[2])∧(>=@z(x[7], y[7]) →* TRUE))
(7) -> (6), if ((xs[7] →* xs[6])∧(x[7] →* x[6])∧(y[7] →* y[6])∧(>=@z(x[7], y[7]) →* FALSE))
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
z
del(x, nil) → nil
if2(FALSE, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(=@z(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(>=@z(x, y), x, y, xs)
if1(FALSE, x, y, xs) → max(cons(y, xs))
if1(TRUE, x, y, xs) → max(cons(x, xs))
if2(TRUE, x, y, xs) → xs
(0) -> (3), if ((xs[0] →* cons(y[3], xs[3]))∧(x[0] →* x[3]))
(1) -> (1), if ((del(max(cons(x[1], xs[1])), cons(x[1], xs[1])) →* cons(x[1]a, xs[1]a)))
(1) -> (4), if ((del(max(cons(x[1], xs[1])), cons(x[1], xs[1])) →* cons(x[4], xs[4])))
(1) -> (5), if ((del(max(cons(x[1], xs[1])), cons(x[1], xs[1])) →* cons(x[5], xs[5])))
(2) -> (7), if ((xs[2] →* cons(y[7], xs[7]))∧(x[2] →* x[7]))
(3) -> (0), if ((xs[3] →* xs[0])∧(x[3] →* x[0])∧(y[3] →* y[0])∧(=@z(x[3], y[3]) →* FALSE))
(4) -> (7), if ((xs[4] →* cons(y[7], xs[7]))∧(x[4] →* x[7]))
(5) -> (3), if ((xs[5] →* xs[3])∧(x[5] →* y[3])∧(max(cons(x[5], xs[5])) →* x[3]))
(6) -> (7), if ((xs[6] →* cons(y[7], xs[7]))∧(y[6] →* x[7]))
(7) -> (2), if ((xs[7] →* xs[2])∧(x[7] →* x[2])∧(y[7] →* y[2])∧(>=@z(x[7], y[7]) →* TRUE))
(7) -> (6), if ((xs[7] →* xs[6])∧(x[7] →* x[6])∧(y[7] →* y[6])∧(>=@z(x[7], y[7]) →* FALSE))
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDP
z
del(x, nil) → nil
if2(FALSE, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(=@z(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(>=@z(x, y), x, y, xs)
if1(FALSE, x, y, xs) → max(cons(y, xs))
if1(TRUE, x, y, xs) → max(cons(x, xs))
if2(TRUE, x, y, xs) → xs
(7) -> (6), if ((xs[7] →* xs[6])∧(x[7] →* x[6])∧(y[7] →* y[6])∧(>=@z(x[7], y[7]) →* FALSE))
(7) -> (2), if ((xs[7] →* xs[2])∧(x[7] →* x[2])∧(y[7] →* y[2])∧(>=@z(x[7], y[7]) →* TRUE))
(6) -> (7), if ((xs[6] →* cons(y[7], xs[7]))∧(y[6] →* x[7]))
(2) -> (7), if ((xs[2] →* cons(y[7], xs[7]))∧(x[2] →* x[7]))
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
↳ IDP
↳ IDP
z
(7) -> (6), if ((xs[7] →* xs[6])∧(x[7] →* x[6])∧(y[7] →* y[6])∧(>=@z(x[7], y[7]) →* FALSE))
(7) -> (2), if ((xs[7] →* xs[2])∧(x[7] →* x[2])∧(y[7] →* y[2])∧(>=@z(x[7], y[7]) →* TRUE))
(6) -> (7), if ((xs[6] →* cons(y[7], xs[7]))∧(y[6] →* x[7]))
(2) -> (7), if ((xs[2] →* cons(y[7], xs[7]))∧(x[2] →* x[7]))
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
(1) (>=@z(x[7], y[7])=TRUE∧xs[7]=xs[2]∧xs[2]=cons(y[7]1, xs[7]1)∧x[2]=x[7]1∧y[7]=y[2]∧x[7]=x[2] ⇒ IF1(TRUE, x[2], y[2], xs[2])≥MAX(cons(x[2], xs[2]))∧(UIncreasing(MAX(cons(x[2], xs[2]))), ≥))
(2) (>=@z(x[7], y[7])=TRUE ⇒ IF1(TRUE, x[7], y[7], cons(y[7]1, xs[7]1))≥MAX(cons(x[7], cons(y[7]1, xs[7]1)))∧(UIncreasing(MAX(cons(x[2], xs[2]))), ≥))
(3) (0 ≥ 0 ⇒ (UIncreasing(MAX(cons(x[2], xs[2]))), ≥)∧0 ≥ 0)
(4) (0 ≥ 0 ⇒ (UIncreasing(MAX(cons(x[2], xs[2]))), ≥)∧0 ≥ 0)
(5) (0 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(MAX(cons(x[2], xs[2]))), ≥))
(6) (0 ≥ 0 ⇒ 0 = 0∧0 = 0∧(UIncreasing(MAX(cons(x[2], xs[2]))), ≥)∧0 ≥ 0∧0 = 0∧0 = 0)
(7) (>=@z(x[7], y[7])=TRUE∧xs[7]=xs[2]∧y[6]=x[7]∧y[7]=y[2]∧xs[6]=cons(y[7], xs[7])∧x[7]=x[2] ⇒ MAX(cons(x[7], cons(y[7], xs[7])))≥IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(8) (>=@z(x[7], y[7])=TRUE ⇒ MAX(cons(x[7], cons(y[7], xs[7])))≥IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(9) (0 ≥ 0 ⇒ (UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 ≥ 0)
(10) (0 ≥ 0 ⇒ (UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 ≥ 0)
(11) (0 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(12) (0 ≥ 0 ⇒ 0 ≥ 0∧0 = 0∧0 = 0∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 = 0)
(13) (>=@z(x[7], y[7])=TRUE∧x[7]=x[2]1∧xs[7]=xs[2]1∧x[2]=x[7]∧y[7]=y[2]1∧xs[2]=cons(y[7], xs[7]) ⇒ MAX(cons(x[7], cons(y[7], xs[7])))≥IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(14) (>=@z(x[7], y[7])=TRUE ⇒ MAX(cons(x[7], cons(y[7], xs[7])))≥IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(15) (0 ≥ 0 ⇒ (UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 ≥ 0)
(16) (0 ≥ 0 ⇒ (UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 ≥ 0)
(17) (0 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(18) (0 ≥ 0 ⇒ 0 = 0∧0 = 0∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 ≥ 0∧0 = 0)
(19) (x[7]=x[6]1∧y[7]=y[6]1∧y[6]=x[7]∧xs[6]=cons(y[7], xs[7])∧xs[7]=xs[6]1∧>=@z(x[7], y[7])=FALSE ⇒ MAX(cons(x[7], cons(y[7], xs[7])))≥IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(20) (>=@z(x[7], y[7])=FALSE ⇒ MAX(cons(x[7], cons(y[7], xs[7])))≥IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(21) (0 ≥ 0 ⇒ (UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 ≥ 0)
(22) (0 ≥ 0 ⇒ (UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 ≥ 0)
(23) (0 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(24) (0 ≥ 0 ⇒ 0 ≥ 0∧0 = 0∧0 = 0∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 = 0)
(25) (x[7]=x[6]∧x[2]=x[7]∧>=@z(x[7], y[7])=FALSE∧xs[7]=xs[6]∧xs[2]=cons(y[7], xs[7])∧y[7]=y[6] ⇒ MAX(cons(x[7], cons(y[7], xs[7])))≥IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(26) (>=@z(x[7], y[7])=FALSE ⇒ MAX(cons(x[7], cons(y[7], xs[7])))≥IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(27) (0 ≥ 0 ⇒ (UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 ≥ 0)
(28) (0 ≥ 0 ⇒ (UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 ≥ 0)
(29) (0 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥))
(30) (0 ≥ 0 ⇒ 0 ≥ 0∧0 = 0∧0 = 0∧(UIncreasing(IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])), ≥)∧0 = 0)
(31) (x[7]=x[6]∧>=@z(x[7], y[7])=FALSE∧xs[6]=cons(y[7]1, xs[7]1)∧xs[7]=xs[6]∧y[7]=y[6]∧y[6]=x[7]1 ⇒ IF1(FALSE, x[6], y[6], xs[6])≥MAX(cons(y[6], xs[6]))∧(UIncreasing(MAX(cons(y[6], xs[6]))), ≥))
(32) (>=@z(x[7], y[7])=FALSE ⇒ IF1(FALSE, x[7], y[7], cons(y[7]1, xs[7]1))≥MAX(cons(y[7], cons(y[7]1, xs[7]1)))∧(UIncreasing(MAX(cons(y[6], xs[6]))), ≥))
(33) (0 ≥ 0 ⇒ (UIncreasing(MAX(cons(y[6], xs[6]))), ≥)∧0 ≥ 0)
(34) (0 ≥ 0 ⇒ (UIncreasing(MAX(cons(y[6], xs[6]))), ≥)∧0 ≥ 0)
(35) (0 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(MAX(cons(y[6], xs[6]))), ≥))
(36) (0 ≥ 0 ⇒ 0 ≥ 0∧0 = 0∧(UIncreasing(MAX(cons(y[6], xs[6]))), ≥)∧0 = 0∧0 = 0∧0 = 0)
POL(cons(x1, x2)) = 1 + x2
POL(>=@z(x1, x2)) = 0
POL(IF1(x1, x2, x3, x4)) = x4
POL(TRUE) = 0
POL(FALSE) = 0
POL(MAX(x1)) = -1 + x1
POL(undefined) = 0
MAX(cons(x[7], cons(y[7], xs[7]))) → IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])
IF1(TRUE, x[2], y[2], xs[2]) → MAX(cons(x[2], xs[2]))
MAX(cons(x[7], cons(y[7], xs[7]))) → IF1(>=@z(x[7], y[7]), x[7], y[7], xs[7])
IF1(FALSE, x[6], y[6], xs[6]) → MAX(cons(y[6], xs[6]))
IF1(TRUE, x[2], y[2], xs[2]) → MAX(cons(x[2], xs[2]))
IF1(FALSE, x[6], y[6], xs[6]) → MAX(cons(y[6], xs[6]))
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDP
↳ IDP
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDP
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ UsableRulesProof
↳ IDP
z
del(x, nil) → nil
if2(FALSE, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(=@z(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(>=@z(x, y), x, y, xs)
if1(FALSE, x, y, xs) → max(cons(y, xs))
if1(TRUE, x, y, xs) → max(cons(x, xs))
if2(TRUE, x, y, xs) → xs
(0) -> (3), if ((xs[0] →* cons(y[3], xs[3]))∧(x[0] →* x[3]))
(3) -> (0), if ((xs[3] →* xs[0])∧(x[3] →* x[0])∧(y[3] →* y[0])∧(=@z(x[3], y[3]) →* FALSE))
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
↳ IDP
z
(0) -> (3), if ((xs[0] →* cons(y[3], xs[3]))∧(x[0] →* x[3]))
(3) -> (0), if ((xs[3] →* xs[0])∧(x[3] →* x[0])∧(y[3] →* y[0])∧(=@z(x[3], y[3]) →* FALSE))
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
(1) (xs[3]=xs[0]1∧x[0]=x[3]∧x[3]=x[0]1∧=@z(x[3], y[3])=FALSE∧xs[0]=cons(y[3], xs[3])∧y[3]=y[0]1 ⇒ DEL(x[3], cons(y[3], xs[3]))≥IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])∧(UIncreasing(IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])), ≥))
(2) (=@z(x[3], y[3])=FALSE ⇒ DEL(x[3], cons(y[3], xs[3]))≥IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])∧(UIncreasing(IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])), ≥))
(3) (0 ≥ 0 ⇒ (UIncreasing(IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])), ≥)∧1 ≥ 0)
(4) (0 ≥ 0 ⇒ (UIncreasing(IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])), ≥)∧1 ≥ 0)
(5) (0 ≥ 0 ⇒ 1 ≥ 0∧(UIncreasing(IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])), ≥))
(6) (0 ≥ 0 ⇒ 0 = 0∧1 ≥ 0∧(UIncreasing(IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])), ≥)∧0 = 0∧0 = 0)
(7) (xs[0]=cons(y[3]1, xs[3]1)∧x[3]=x[0]∧y[3]=y[0]∧x[0]=x[3]1∧=@z(x[3], y[3])=FALSE∧xs[3]=xs[0] ⇒ IF2(FALSE, x[0], y[0], xs[0])≥DEL(x[0], xs[0])∧(UIncreasing(DEL(x[0], xs[0])), ≥))
(8) (=@z(x[3], y[3])=FALSE ⇒ IF2(FALSE, x[3], y[3], cons(y[3]1, xs[3]1))≥DEL(x[3], cons(y[3]1, xs[3]1))∧(UIncreasing(DEL(x[0], xs[0])), ≥))
(9) (0 ≥ 0 ⇒ (UIncreasing(DEL(x[0], xs[0])), ≥)∧0 ≥ 0)
(10) (0 ≥ 0 ⇒ (UIncreasing(DEL(x[0], xs[0])), ≥)∧0 ≥ 0)
(11) (0 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(DEL(x[0], xs[0])), ≥))
(12) (0 ≥ 0 ⇒ 0 = 0∧0 ≥ 0∧0 = 0∧0 = 0∧(UIncreasing(DEL(x[0], xs[0])), ≥)∧0 = 0)
POL(cons(x1, x2)) = 1 + x2
POL(=@z(x1, x2)) = 0
POL(IF2(x1, x2, x3, x4)) = -1 + (2)x4 + (-1)x2
POL(TRUE) = 0
POL(DEL(x1, x2)) = -1 + (2)x2 + (-1)x1
POL(FALSE) = 0
POL(undefined) = 0
DEL(x[3], cons(y[3], xs[3])) → IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])
DEL(x[3], cons(y[3], xs[3])) → IF2(=@z(x[3], y[3]), x[3], y[3], xs[3])
IF2(FALSE, x[0], y[0], xs[0]) → DEL(x[0], xs[0])
IF2(FALSE, x[0], y[0], xs[0]) → DEL(x[0], xs[0])
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDP
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDP
↳ IDependencyGraphProof
↳ IDP
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ IDP
↳ IDPtoQDPProof
z
del(x, nil) → nil
if2(FALSE, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(=@z(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(>=@z(x, y), x, y, xs)
if1(FALSE, x, y, xs) → max(cons(y, xs))
if1(TRUE, x, y, xs) → max(cons(x, xs))
if2(TRUE, x, y, xs) → xs
(1) -> (1), if ((del(max(cons(x[1], xs[1])), cons(x[1], xs[1])) →* cons(x[1]a, xs[1]a)))
del(x0, nil)
sort(cons(x0, x1))
if2(FALSE, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(TRUE, x0, x1, x2)
if2(TRUE, x0, x1, x2)
if1(FALSE, x0, x1, x2)
max(nil)
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ IDP
↳ IDPtoQDPProof
↳ QDP
↳ QReductionProof
SORT(cons(x[1], xs[1])) → SORT(del(max(cons(x[1], xs[1])), cons(x[1], xs[1])))
del(x, nil) → nil
if2(false, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(equal_int(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(greatereq_int(x, y), x, y, xs)
if1(false, x, y, xs) → max(cons(y, xs))
if1(true, x, y, xs) → max(cons(x, xs))
if2(true, x, y, xs) → xs
equal_int(pos(0), pos(0)) → true
equal_int(neg(0), pos(0)) → true
equal_int(neg(0), neg(0)) → true
equal_int(pos(0), neg(0)) → true
equal_int(pos(0), pos(s(y))) → false
equal_int(neg(0), pos(s(y))) → false
equal_int(pos(0), neg(s(y))) → false
equal_int(neg(0), neg(s(y))) → false
equal_int(pos(s(x)), pos(0)) → false
equal_int(pos(s(x)), neg(0)) → false
equal_int(neg(s(x)), pos(0)) → false
equal_int(neg(s(x)), neg(0)) → false
equal_int(pos(s(x)), neg(s(y))) → false
equal_int(neg(s(x)), pos(s(y))) → false
equal_int(pos(s(x)), pos(s(y))) → equal_int(pos(x), pos(y))
equal_int(neg(s(x)), neg(s(y))) → equal_int(neg(x), neg(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
del(x0, nil)
sort(cons(x0, x1))
if2(false, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(true, x0, x1, x2)
if2(true, x0, x1, x2)
if1(false, x0, x1, x2)
max(nil)
sort(nil)
equal_int(pos(0), pos(0))
equal_int(neg(0), pos(0))
equal_int(neg(0), neg(0))
equal_int(pos(0), neg(0))
equal_int(pos(0), pos(s(x0)))
equal_int(neg(0), pos(s(x0)))
equal_int(pos(0), neg(s(x0)))
equal_int(neg(0), neg(s(x0)))
equal_int(pos(s(x0)), pos(0))
equal_int(pos(s(x0)), neg(0))
equal_int(neg(s(x0)), pos(0))
equal_int(neg(s(x0)), neg(0))
equal_int(pos(s(x0)), neg(s(x1)))
equal_int(neg(s(x0)), pos(s(x1)))
equal_int(pos(s(x0)), pos(s(x1)))
equal_int(neg(s(x0)), neg(s(x1)))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
sort(cons(x0, x1))
sort(nil)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ IDP
↳ IDPtoQDPProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
SORT(cons(x[1], xs[1])) → SORT(del(max(cons(x[1], xs[1])), cons(x[1], xs[1])))
del(x, nil) → nil
if2(false, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(equal_int(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(greatereq_int(x, y), x, y, xs)
if1(false, x, y, xs) → max(cons(y, xs))
if1(true, x, y, xs) → max(cons(x, xs))
if2(true, x, y, xs) → xs
equal_int(pos(0), pos(0)) → true
equal_int(neg(0), pos(0)) → true
equal_int(neg(0), neg(0)) → true
equal_int(pos(0), neg(0)) → true
equal_int(pos(0), pos(s(y))) → false
equal_int(neg(0), pos(s(y))) → false
equal_int(pos(0), neg(s(y))) → false
equal_int(neg(0), neg(s(y))) → false
equal_int(pos(s(x)), pos(0)) → false
equal_int(pos(s(x)), neg(0)) → false
equal_int(neg(s(x)), pos(0)) → false
equal_int(neg(s(x)), neg(0)) → false
equal_int(pos(s(x)), neg(s(y))) → false
equal_int(neg(s(x)), pos(s(y))) → false
equal_int(pos(s(x)), pos(s(y))) → equal_int(pos(x), pos(y))
equal_int(neg(s(x)), neg(s(y))) → equal_int(neg(x), neg(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
del(x0, nil)
if2(false, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(true, x0, x1, x2)
if2(true, x0, x1, x2)
if1(false, x0, x1, x2)
max(nil)
equal_int(pos(0), pos(0))
equal_int(neg(0), pos(0))
equal_int(neg(0), neg(0))
equal_int(pos(0), neg(0))
equal_int(pos(0), pos(s(x0)))
equal_int(neg(0), pos(s(x0)))
equal_int(pos(0), neg(s(x0)))
equal_int(neg(0), neg(s(x0)))
equal_int(pos(s(x0)), pos(0))
equal_int(pos(s(x0)), neg(0))
equal_int(neg(s(x0)), pos(0))
equal_int(neg(s(x0)), neg(0))
equal_int(pos(s(x0)), neg(s(x1)))
equal_int(neg(s(x0)), pos(s(x1)))
equal_int(pos(s(x0)), pos(s(x1)))
equal_int(neg(s(x0)), neg(s(x1)))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
SORT(cons(x[1], xs[1])) → SORT(if2(equal_int(max(cons(x[1], xs[1])), x[1]), max(cons(x[1], xs[1])), x[1], xs[1]))
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ IDP
↳ IDPtoQDPProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
SORT(cons(x[1], xs[1])) → SORT(if2(equal_int(max(cons(x[1], xs[1])), x[1]), max(cons(x[1], xs[1])), x[1], xs[1]))
del(x, nil) → nil
if2(false, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(equal_int(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(greatereq_int(x, y), x, y, xs)
if1(false, x, y, xs) → max(cons(y, xs))
if1(true, x, y, xs) → max(cons(x, xs))
if2(true, x, y, xs) → xs
equal_int(pos(0), pos(0)) → true
equal_int(neg(0), pos(0)) → true
equal_int(neg(0), neg(0)) → true
equal_int(pos(0), neg(0)) → true
equal_int(pos(0), pos(s(y))) → false
equal_int(neg(0), pos(s(y))) → false
equal_int(pos(0), neg(s(y))) → false
equal_int(neg(0), neg(s(y))) → false
equal_int(pos(s(x)), pos(0)) → false
equal_int(pos(s(x)), neg(0)) → false
equal_int(neg(s(x)), pos(0)) → false
equal_int(neg(s(x)), neg(0)) → false
equal_int(pos(s(x)), neg(s(y))) → false
equal_int(neg(s(x)), pos(s(y))) → false
equal_int(pos(s(x)), pos(s(y))) → equal_int(pos(x), pos(y))
equal_int(neg(s(x)), neg(s(y))) → equal_int(neg(x), neg(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
del(x0, nil)
if2(false, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(true, x0, x1, x2)
if2(true, x0, x1, x2)
if1(false, x0, x1, x2)
max(nil)
equal_int(pos(0), pos(0))
equal_int(neg(0), pos(0))
equal_int(neg(0), neg(0))
equal_int(pos(0), neg(0))
equal_int(pos(0), pos(s(x0)))
equal_int(neg(0), pos(s(x0)))
equal_int(pos(0), neg(s(x0)))
equal_int(neg(0), neg(s(x0)))
equal_int(pos(s(x0)), pos(0))
equal_int(pos(s(x0)), neg(0))
equal_int(neg(s(x0)), pos(0))
equal_int(neg(s(x0)), neg(0))
equal_int(pos(s(x0)), neg(s(x1)))
equal_int(neg(s(x0)), pos(s(x1)))
equal_int(pos(s(x0)), pos(s(x1)))
equal_int(neg(s(x0)), neg(s(x1)))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(if1(greatereq_int(x0, x1), x0, x1, x2), x0), max(cons(x0, cons(x1, x2))), x0, cons(x1, x2)))
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(max(cons(x0, cons(x1, x2))), x0), if1(greatereq_int(x0, x1), x0, x1, x2), x0, cons(x1, x2)))
SORT(cons(x0, nil)) → SORT(if2(equal_int(x0, x0), max(cons(x0, nil)), x0, nil))
SORT(cons(x0, nil)) → SORT(if2(equal_int(max(cons(x0, nil)), x0), x0, x0, nil))
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ IDP
↳ IDPtoQDPProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(if1(greatereq_int(x0, x1), x0, x1, x2), x0), max(cons(x0, cons(x1, x2))), x0, cons(x1, x2)))
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(max(cons(x0, cons(x1, x2))), x0), if1(greatereq_int(x0, x1), x0, x1, x2), x0, cons(x1, x2)))
SORT(cons(x0, nil)) → SORT(if2(equal_int(x0, x0), max(cons(x0, nil)), x0, nil))
SORT(cons(x0, nil)) → SORT(if2(equal_int(max(cons(x0, nil)), x0), x0, x0, nil))
del(x, nil) → nil
if2(false, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(equal_int(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(greatereq_int(x, y), x, y, xs)
if1(false, x, y, xs) → max(cons(y, xs))
if1(true, x, y, xs) → max(cons(x, xs))
if2(true, x, y, xs) → xs
equal_int(pos(0), pos(0)) → true
equal_int(neg(0), pos(0)) → true
equal_int(neg(0), neg(0)) → true
equal_int(pos(0), neg(0)) → true
equal_int(pos(0), pos(s(y))) → false
equal_int(neg(0), pos(s(y))) → false
equal_int(pos(0), neg(s(y))) → false
equal_int(neg(0), neg(s(y))) → false
equal_int(pos(s(x)), pos(0)) → false
equal_int(pos(s(x)), neg(0)) → false
equal_int(neg(s(x)), pos(0)) → false
equal_int(neg(s(x)), neg(0)) → false
equal_int(pos(s(x)), neg(s(y))) → false
equal_int(neg(s(x)), pos(s(y))) → false
equal_int(pos(s(x)), pos(s(y))) → equal_int(pos(x), pos(y))
equal_int(neg(s(x)), neg(s(y))) → equal_int(neg(x), neg(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
del(x0, nil)
if2(false, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(true, x0, x1, x2)
if2(true, x0, x1, x2)
if1(false, x0, x1, x2)
max(nil)
equal_int(pos(0), pos(0))
equal_int(neg(0), pos(0))
equal_int(neg(0), neg(0))
equal_int(pos(0), neg(0))
equal_int(pos(0), pos(s(x0)))
equal_int(neg(0), pos(s(x0)))
equal_int(pos(0), neg(s(x0)))
equal_int(neg(0), neg(s(x0)))
equal_int(pos(s(x0)), pos(0))
equal_int(pos(s(x0)), neg(0))
equal_int(neg(s(x0)), pos(0))
equal_int(neg(s(x0)), neg(0))
equal_int(pos(s(x0)), neg(s(x1)))
equal_int(neg(s(x0)), pos(s(x1)))
equal_int(pos(s(x0)), pos(s(x1)))
equal_int(neg(s(x0)), neg(s(x1)))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(if1(greatereq_int(x0, x1), x0, x1, x2), x0), if1(greatereq_int(x0, x1), x0, x1, x2), x0, cons(x1, x2)))
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ IDP
↳ IDPtoQDPProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(max(cons(x0, cons(x1, x2))), x0), if1(greatereq_int(x0, x1), x0, x1, x2), x0, cons(x1, x2)))
SORT(cons(x0, nil)) → SORT(if2(equal_int(x0, x0), max(cons(x0, nil)), x0, nil))
SORT(cons(x0, nil)) → SORT(if2(equal_int(max(cons(x0, nil)), x0), x0, x0, nil))
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(if1(greatereq_int(x0, x1), x0, x1, x2), x0), if1(greatereq_int(x0, x1), x0, x1, x2), x0, cons(x1, x2)))
del(x, nil) → nil
if2(false, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(equal_int(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(greatereq_int(x, y), x, y, xs)
if1(false, x, y, xs) → max(cons(y, xs))
if1(true, x, y, xs) → max(cons(x, xs))
if2(true, x, y, xs) → xs
equal_int(pos(0), pos(0)) → true
equal_int(neg(0), pos(0)) → true
equal_int(neg(0), neg(0)) → true
equal_int(pos(0), neg(0)) → true
equal_int(pos(0), pos(s(y))) → false
equal_int(neg(0), pos(s(y))) → false
equal_int(pos(0), neg(s(y))) → false
equal_int(neg(0), neg(s(y))) → false
equal_int(pos(s(x)), pos(0)) → false
equal_int(pos(s(x)), neg(0)) → false
equal_int(neg(s(x)), pos(0)) → false
equal_int(neg(s(x)), neg(0)) → false
equal_int(pos(s(x)), neg(s(y))) → false
equal_int(neg(s(x)), pos(s(y))) → false
equal_int(pos(s(x)), pos(s(y))) → equal_int(pos(x), pos(y))
equal_int(neg(s(x)), neg(s(y))) → equal_int(neg(x), neg(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
del(x0, nil)
if2(false, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(true, x0, x1, x2)
if2(true, x0, x1, x2)
if1(false, x0, x1, x2)
max(nil)
equal_int(pos(0), pos(0))
equal_int(neg(0), pos(0))
equal_int(neg(0), neg(0))
equal_int(pos(0), neg(0))
equal_int(pos(0), pos(s(x0)))
equal_int(neg(0), pos(s(x0)))
equal_int(pos(0), neg(s(x0)))
equal_int(neg(0), neg(s(x0)))
equal_int(pos(s(x0)), pos(0))
equal_int(pos(s(x0)), neg(0))
equal_int(neg(s(x0)), pos(0))
equal_int(neg(s(x0)), neg(0))
equal_int(pos(s(x0)), neg(s(x1)))
equal_int(neg(s(x0)), pos(s(x1)))
equal_int(pos(s(x0)), pos(s(x1)))
equal_int(neg(s(x0)), neg(s(x1)))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(if1(greatereq_int(x0, x1), x0, x1, x2), x0), if1(greatereq_int(x0, x1), x0, x1, x2), x0, cons(x1, x2)))
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ IDP
↳ IDPtoQDPProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
SORT(cons(x0, nil)) → SORT(if2(equal_int(x0, x0), max(cons(x0, nil)), x0, nil))
SORT(cons(x0, nil)) → SORT(if2(equal_int(max(cons(x0, nil)), x0), x0, x0, nil))
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(if1(greatereq_int(x0, x1), x0, x1, x2), x0), if1(greatereq_int(x0, x1), x0, x1, x2), x0, cons(x1, x2)))
del(x, nil) → nil
if2(false, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(equal_int(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(greatereq_int(x, y), x, y, xs)
if1(false, x, y, xs) → max(cons(y, xs))
if1(true, x, y, xs) → max(cons(x, xs))
if2(true, x, y, xs) → xs
equal_int(pos(0), pos(0)) → true
equal_int(neg(0), pos(0)) → true
equal_int(neg(0), neg(0)) → true
equal_int(pos(0), neg(0)) → true
equal_int(pos(0), pos(s(y))) → false
equal_int(neg(0), pos(s(y))) → false
equal_int(pos(0), neg(s(y))) → false
equal_int(neg(0), neg(s(y))) → false
equal_int(pos(s(x)), pos(0)) → false
equal_int(pos(s(x)), neg(0)) → false
equal_int(neg(s(x)), pos(0)) → false
equal_int(neg(s(x)), neg(0)) → false
equal_int(pos(s(x)), neg(s(y))) → false
equal_int(neg(s(x)), pos(s(y))) → false
equal_int(pos(s(x)), pos(s(y))) → equal_int(pos(x), pos(y))
equal_int(neg(s(x)), neg(s(y))) → equal_int(neg(x), neg(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
del(x0, nil)
if2(false, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(true, x0, x1, x2)
if2(true, x0, x1, x2)
if1(false, x0, x1, x2)
max(nil)
equal_int(pos(0), pos(0))
equal_int(neg(0), pos(0))
equal_int(neg(0), neg(0))
equal_int(pos(0), neg(0))
equal_int(pos(0), pos(s(x0)))
equal_int(neg(0), pos(s(x0)))
equal_int(pos(0), neg(s(x0)))
equal_int(neg(0), neg(s(x0)))
equal_int(pos(s(x0)), pos(0))
equal_int(pos(s(x0)), neg(0))
equal_int(neg(s(x0)), pos(0))
equal_int(neg(s(x0)), neg(0))
equal_int(pos(s(x0)), neg(s(x1)))
equal_int(neg(s(x0)), pos(s(x1)))
equal_int(pos(s(x0)), pos(s(x1)))
equal_int(neg(s(x0)), neg(s(x1)))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
SORT(cons(x0, nil)) → SORT(if2(equal_int(x0, x0), x0, x0, nil))
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ IDP
↳ IDPtoQDPProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
SORT(cons(x0, nil)) → SORT(if2(equal_int(max(cons(x0, nil)), x0), x0, x0, nil))
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(if1(greatereq_int(x0, x1), x0, x1, x2), x0), if1(greatereq_int(x0, x1), x0, x1, x2), x0, cons(x1, x2)))
SORT(cons(x0, nil)) → SORT(if2(equal_int(x0, x0), x0, x0, nil))
del(x, nil) → nil
if2(false, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(equal_int(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(greatereq_int(x, y), x, y, xs)
if1(false, x, y, xs) → max(cons(y, xs))
if1(true, x, y, xs) → max(cons(x, xs))
if2(true, x, y, xs) → xs
equal_int(pos(0), pos(0)) → true
equal_int(neg(0), pos(0)) → true
equal_int(neg(0), neg(0)) → true
equal_int(pos(0), neg(0)) → true
equal_int(pos(0), pos(s(y))) → false
equal_int(neg(0), pos(s(y))) → false
equal_int(pos(0), neg(s(y))) → false
equal_int(neg(0), neg(s(y))) → false
equal_int(pos(s(x)), pos(0)) → false
equal_int(pos(s(x)), neg(0)) → false
equal_int(neg(s(x)), pos(0)) → false
equal_int(neg(s(x)), neg(0)) → false
equal_int(pos(s(x)), neg(s(y))) → false
equal_int(neg(s(x)), pos(s(y))) → false
equal_int(pos(s(x)), pos(s(y))) → equal_int(pos(x), pos(y))
equal_int(neg(s(x)), neg(s(y))) → equal_int(neg(x), neg(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
del(x0, nil)
if2(false, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(true, x0, x1, x2)
if2(true, x0, x1, x2)
if1(false, x0, x1, x2)
max(nil)
equal_int(pos(0), pos(0))
equal_int(neg(0), pos(0))
equal_int(neg(0), neg(0))
equal_int(pos(0), neg(0))
equal_int(pos(0), pos(s(x0)))
equal_int(neg(0), pos(s(x0)))
equal_int(pos(0), neg(s(x0)))
equal_int(neg(0), neg(s(x0)))
equal_int(pos(s(x0)), pos(0))
equal_int(pos(s(x0)), neg(0))
equal_int(neg(s(x0)), pos(0))
equal_int(neg(s(x0)), neg(0))
equal_int(pos(s(x0)), neg(s(x1)))
equal_int(neg(s(x0)), pos(s(x1)))
equal_int(pos(s(x0)), pos(s(x1)))
equal_int(neg(s(x0)), neg(s(x1)))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
SORT(cons(x0, nil)) → SORT(if2(equal_int(x0, x0), x0, x0, nil))
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ AND
↳ IDP
↳ IDP
↳ IDP
↳ IDPtoQDPProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
SORT(cons(x0, cons(x1, x2))) → SORT(if2(equal_int(if1(greatereq_int(x0, x1), x0, x1, x2), x0), if1(greatereq_int(x0, x1), x0, x1, x2), x0, cons(x1, x2)))
SORT(cons(x0, nil)) → SORT(if2(equal_int(x0, x0), x0, x0, nil))
del(x, nil) → nil
if2(false, x, y, xs) → cons(y, del(x, xs))
del(x, cons(y, xs)) → if2(equal_int(x, y), x, y, xs)
max(cons(x, nil)) → x
max(cons(x, cons(y, xs))) → if1(greatereq_int(x, y), x, y, xs)
if1(false, x, y, xs) → max(cons(y, xs))
if1(true, x, y, xs) → max(cons(x, xs))
if2(true, x, y, xs) → xs
equal_int(pos(0), pos(0)) → true
equal_int(neg(0), pos(0)) → true
equal_int(neg(0), neg(0)) → true
equal_int(pos(0), neg(0)) → true
equal_int(pos(0), pos(s(y))) → false
equal_int(neg(0), pos(s(y))) → false
equal_int(pos(0), neg(s(y))) → false
equal_int(neg(0), neg(s(y))) → false
equal_int(pos(s(x)), pos(0)) → false
equal_int(pos(s(x)), neg(0)) → false
equal_int(neg(s(x)), pos(0)) → false
equal_int(neg(s(x)), neg(0)) → false
equal_int(pos(s(x)), neg(s(y))) → false
equal_int(neg(s(x)), pos(s(y))) → false
equal_int(pos(s(x)), pos(s(y))) → equal_int(pos(x), pos(y))
equal_int(neg(s(x)), neg(s(y))) → equal_int(neg(x), neg(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
del(x0, nil)
if2(false, x0, x1, x2)
max(cons(x0, cons(x1, x2)))
del(x0, cons(x1, x2))
max(cons(x0, nil))
if1(true, x0, x1, x2)
if2(true, x0, x1, x2)
if1(false, x0, x1, x2)
max(nil)
equal_int(pos(0), pos(0))
equal_int(neg(0), pos(0))
equal_int(neg(0), neg(0))
equal_int(pos(0), neg(0))
equal_int(pos(0), pos(s(x0)))
equal_int(neg(0), pos(s(x0)))
equal_int(pos(0), neg(s(x0)))
equal_int(neg(0), neg(s(x0)))
equal_int(pos(s(x0)), pos(0))
equal_int(pos(s(x0)), neg(0))
equal_int(neg(s(x0)), pos(0))
equal_int(neg(s(x0)), neg(0))
equal_int(pos(s(x0)), neg(s(x1)))
equal_int(neg(s(x0)), pos(s(x1)))
equal_int(pos(s(x0)), pos(s(x1)))
equal_int(neg(s(x0)), neg(s(x1)))
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))